package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import Modelo.Categoria;
import Modelo.CategoriaDAO;
import Modelo.DetalleCompra;
import Modelo.DetalleCompraDAO;
import Modelo.Ingrediente;
import Modelo.IngredienteDAO;
import Modelo.Plantilla;
import Modelo.PlantillaDAO;
import Modelo.Producto;
import Vista.NewJDialogDetalleCompra;
import Vista.NewJDialogPlantilla;

public class ControladorDetalle {
	ArrayList<DetalleCompra> detalles;
	
		private NewJDialogDetalleCompra detalle;
		
		public ControladorDetalle(JFrame frm) {
			detalle = new NewJDialogDetalleCompra (frm, this);
			
			detalle.getjBtoAceptar().addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					if (detalle.getjTxtCantidad().getText().isEmpty() ||
							detalle.getjTxtCodigoCompra().getText().isEmpty() ||
							detalle.getjTxtCodigoIngrediente().getText().isEmpty()||
							detalle.getjTxtMontoCompra().getText().isEmpty()) {
							JOptionPane.showMessageDialog(null, "Rellene los campos de textos.");
							return;
						}
					DetalleCompra dc = new DetalleCompra(detalle.getjTxtCodigoCompra().getText(),detalle.getjTxtCodigoIngrediente().getText(),Integer.parseInt(detalle.getjTxtCantidad().getText()), Float.parseFloat(detalle.getjTxtMontoCompra().getText()));
					DetalleCompraDAO dcdao = new DetalleCompraDAO();
					IngredienteDAO idao = new IngredienteDAO();
					Ingrediente ing = idao.ConsultarIngrediente(dc.getCodigoIngrediente());
					ing.setCantidad(ing.getCantidad() + dc.getCantidad());
					idao.ModificarIngrediente(ing);

					dcdao.registrarDetalleCompra(dc);
					detalle.dispose();
					JOptionPane.showMessageDialog(null, " Compra registrada", "Informacion", JOptionPane.INFORMATION_MESSAGE);
				}
				
			});
		    detalle.setVisible(true);
		    detalle.getjBtoSalir().addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					detalle.dispose();
				}
			});
		    detalle.getjBtoDetalleBuscar().addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					DetalleCompraDAO com = new DetalleCompraDAO();		
					
					DetalleCompra detalles = com.ConsultarCompra(detalle.getjTxtCodigoCompra().getText()); 
					if (com == null)
						JOptionPane.showMessageDialog(null, "No existe.");
			
					else {
						detalle.getjTxtCodigoIngrediente().setText(detalles.getCodigoIngrediente());
						detalle.getjTxtCantidad().setText(Integer.toString(detalles.getCantidad()));
						detalle.getjTxtMontoCompra().setText(Float.toString(detalles.getMonto()));			
					}
				}
			});
		}
}
